#include "allhead.h"
#include "Graf.h"

void put_wff_graf(LPGRAF graf, LPSTR name)
{
 FILE *fout;
 int   i,i1,i2,i3,k;

 fout=fopen(name,"w");
 if(!fout)
	{
	 printf("Error open file `%s`\n",name);
	 exit(0);
	}

 for(k=0,i=0;i<graf->n;i++)
	k+=(graf->vertex[i].ntrg>0);

 fprintf(fout,"# Points: all=%d nonzero=%d border=%d Trg=%d\n",graf->n,k,graf->nbord,graf->nt);

 graf->x0=graf->x1=graf->vertex[0].x;
 graf->y0=graf->y1=graf->vertex[0].y;
 graf->z0=graf->z1=graf->vertex[0].z;

 for(i=0;i<graf->n;i++)
	{
//	if(graf->vertex[i].z>15.)graf->vertex[i].z=0.;

	if(graf->x0>graf->vertex[i].x)graf->x0=graf->vertex[i].x;
	if(graf->x1<graf->vertex[i].x)graf->x1=graf->vertex[i].x;
	if(graf->y0>graf->vertex[i].y)graf->y0=graf->vertex[i].y;
	if(graf->y1<graf->vertex[i].y)graf->y1=graf->vertex[i].y;
	if(graf->z0>graf->vertex[i].z)graf->z0=graf->vertex[i].z;
	if(graf->z1<graf->vertex[i].z)graf->z1=graf->vertex[i].z;

	fprintf(fout,"v %.5f %.5f %.5f\n",
	graf->vertex[i].x,
	graf->vertex[i].y,
	graf->vertex[i].z);
	}

 if(1)
 for(i=0;i<graf->n;i++)
			if(!graf->vertex[i].ntrg)
				fprintf(fout,"f %5d %5d\n",i+1,i+1);

 for(i=0;i<graf->nt;i++)
	{
	i1=	graf->trg[3*i+0]+1;
	i2=	graf->trg[3*i+1]+1;
	i3=	graf->trg[3*i+2]+1;

	if(i1<i2)swap(i1,i2);
	if(i1<i3)swap(i1,i3);
	if(i2<i3)swap(i2,i3);

	fprintf(fout,"f %5d %5d %5d\n",i1,i2,i3);
	}

if(1)
 {
 int n=graf->n+1;
 double x2,y2,z2;

 x2=graf->x0+(graf->x1-graf->x0)/3.;
 y2=graf->y0+(graf->y1-graf->y0)/2.;
 z2=graf->z0+(graf->z1-graf->z0)/1.;

 fprintf(fout,"v %.5f %.5f %.5f\n",graf->x0,graf->y0,graf->z0);
 fprintf(fout,"v %.5f %.5f %.5f\n",      x2,graf->y0,graf->z0);
 fprintf(fout,"v %.5f %.5f %.5f\n",graf->x0,      y2,graf->z0);
 fprintf(fout,"v %.5f %.5f %.5f\n",graf->x0,graf->y0,      z2);

 fprintf(fout,"f %5d %5d\n",n,n+1);
 fprintf(fout,"f %5d %5d\n",n,n+2);
 fprintf(fout,"f %5d %5d\n",n,n+3);
 }

 fclose(fout);
}

/*
v 0 0 0
v 1e1 0 0
v 0 2e1 0
v 0 0 3e1
f 566 567
f 566 568
f 566 569
*/
